package com.feituan.core.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.feituan.core.persistence.mapper.QuestionnaireMapper;
import com.feituan.core.pojo.entity.Questionnaire;
import com.feituan.core.pojo.request.QuestionnairePageReq;
import com.feituan.core.pojo.response.page.PageData;
import com.feituan.core.service.IQuestionnaireService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class QuestionnaireServiceImpl extends ServiceImpl<QuestionnaireMapper, Questionnaire> implements IQuestionnaireService {
    @Autowired
    private QuestionnaireMapper questionnaireMapper;
    /**
     * 添加问卷用户
     * @param questionnaire questionnaire
     */
    @Override
    public boolean save(Questionnaire questionnaire) {
        if (questionnaire.getId() != null) {
            return this.questionnaireMapper.updateById(questionnaire) > 0;
        }
        return this.questionnaireMapper.insert(questionnaire) > 0;
    }


    /**
     * 更新问卷用户
     * @param questionnaire questionnaire
     */
    @Override
    public boolean update(Questionnaire questionnaire) {
        return this.questionnaireMapper.updateById(questionnaire) > 0;
    }


    /**
     * 分页查询
     * @param request request
     */
    @Override
    public PageData<Questionnaire> queryPage(QuestionnairePageReq request) {
        Page<Questionnaire> page = this.lambdaQuery()
                .page(new Page<>(request.getPage(), request.getLimit()));
        return PageData.build(page.getCurrent(), page.getTotal(), page.getRecords());
    }

    /**
     * 查询所有
     */
    @Override
    public List<Questionnaire> selectAll() {
        QueryWrapper<Questionnaire> objectQueryWrapper = new QueryWrapper<>();
        return this.questionnaireMapper.selectList(objectQueryWrapper);
    }

    /**
     * 删除
     * @param id id
     */
    @Override
    public boolean delete(Long id) {
        return this.questionnaireMapper.deleteById(id) > 0;
    }
}
